import { useStore } from 'vuex';
import { ref, computed } from 'vue';
import { ADD_TODO_ITEM, REMOVE_TODO_ITEM, SET_ITEM_STATUS, INIT_TODO } from '@/store/types';

function useTodoInput() {
  const store = useStore();

  const addTodoItem = content => {
    content = content.trim();
    if (!content) return;
    const newTodo = {
      id: Date.now(),
      content
    };
    store.commit(ADD_TODO_ITEM, newTodo);
  };
  return {
    addTodoItem
  };
}
function useTodoList() {
  const store = useStore(),
    todoList = computed(() => store.state.todoList);

  const initList = () => {
    store.commit(INIT_TODO);
  };
  return {
    todoList,
    initList
  };
}
function useTodoItem() {
  const store = useStore();
  const title = {
    doing: '正在做',
    finished: '做完的'
  };
  const removeTodoItem = (curStatus, id) => {
    store.commit(REMOVE_TODO_ITEM, { curStatus, id });
  };
  const setTodoItemStatus = (curStatus, id) => {
    store.dispatch(SET_ITEM_STATUS, { curStatus, id });
  };

  return {
    removeTodoItem,
    setTodoItemStatus,
    title
  };
}

export { useTodoInput, useTodoList, useTodoItem };
